Lookahead Carry Unit

A Lookahead Carry Unit (LCU) is a logical unit in digital circuit design used to decrease calculation time in adder units and used in conjunction with carry look-ahead adders (CLAs).

Contents

4-bit adder

A single 4-bit CLA is shown below:

16-bit adder

By combining four 4-bit CLAs, a 16-bit adder can be created but additional logic is needed in the form of an LCU.

The LCU accepts the group propagate (P_G) and group generate (G_G) from each of the four CLAs. P_G and G_G have the following expressions for each CLA adder:[1]

P_G = P_3 \cdot P_2 \cdot P_1 \cdot P_0
G_G = G_3 %2B P_3 \cdot G_2 %2B P_3 \cdot P_2 \cdot G_1 %2B P_3 \cdot P_2 \cdot P_1 \cdot G_0

The LCU then generates the carry input for each CLA.

Assume that P_i is P_G and G_i is G_G from the ith CLA then the output carry bits are

C_{4} = G_0 %2B P_0 \cdot C_0
C_{8} = G_{4} %2B P_{4} \cdot C_{4}
C_{12} = G_{8} %2B P_{8} \cdot C_{8}
C_{16} = G_{12} %2B P_{12} \cdot C_{12}

Substituting C_{4} into C_{8}, then C_{8} into C_{12}, then C_{12} into C_{16} yields the expanded equations:

C_{4} = G_0 %2B P_0 \cdot C_0
C_{8} = G_4 %2B G_0 \cdot P_4 %2B C_0 \cdot P_0 \cdot P_4
C_{12} = G_8 %2B G_4 \cdot P_8 %2B G_0 \cdot P_4 \cdot P_8 %2B C_0 \cdot P_0 \cdot P_4 \cdot P_8
C_{16} = G_{12} %2B G_8 \cdot P_{12} %2B G_4 \cdot P_8 \cdot P_{12} %2B G_0 \cdot P_4 \cdot P_8 \cdot P_{12} %2B C_0 \cdot P_0 \cdot P_4 \cdot P_8 \cdot P_{12}

C_{4} corresponds to the carry input into the second CLA; C_{8} to the third CLA; C{12} to the fourth CLA; and C_{16} to overflow carry bit.

In addition, the LCU can calculate its own propagate and generate:

P_{LCU} = P_0 \cdot P_4 \cdot P_8 \cdot P_{12}
G_{LCU} =  G_{12} %2B G_8 \cdot P_{12} %2B G_4 \cdot P_8 \cdot P_{12} %2B G_0 \cdot P_4 \cdot P_8 \cdot P_{12} %2B C_0 \cdot P_0 \cdot P_4 \cdot P_8 \cdot P_{12} = C_{16}

64-bit adder

By combining 4 CLAs and an LCU together creates a 16-bit adder. Four of these units can be combined to form a 64-bit adder. An additional (second-level) LCU is needed that accepts the propagate (P_{LCU}) and generate (G_{LCU}) from each LCU and the four carry outputs generated by the second-level LCU are fed into the first-level LCUs.

References